package cn.tedu;
////测试 单例 设计模式   懒汉式  ---延时加载/按需加载+线程安全隐患
//在多线程并发操作数据时,,,数据到底是否存在线程安全的隐患??
//共享数据,有没有 被多条语句操作.
import java.sql.SQLOutput;

public class Test11 {
    public static void main(String[] args) {
        B b=B.get();
        B b2=B.get();
        System.out.println(b==b2);
    }
}
//创建类  --保证一个类仅有一个实例
class B{
    private B(){}
    //懒汉式  不会第一时间把对象创建出来占用内存
    static  private B my;//my是成员变量也是引用类型   默认是null
    //3,解决共享资源的线程安全隐患--给共享资源加锁
    //synchronized static  public B get(){
    static  public B get(){
        synchronized (B.class){
            //在执行get()时才开始创建对象
            if(my==null){//没创建过的话,才创建,创建过了,就不在创建了
                /////// 必须写   若不写,每次调用get()时都会创建对象
                my=new B();
            }
            return my;
        }
    }
}